import { defineConfig } from '@soybeanjs/eslint-config';

export default defineConfig(
  { vue: true, unocss: true },
  {
    rules: {
      // 关闭严格模式相关规则
      '@typescript-eslint/no-unused-vars': 'off', // 关闭未使用变量检查
      '@typescript-eslint/no-explicit-any': 'off', // 允许使用 any 类型
      '@typescript-eslint/ban-ts-comment': 'off', // 允许 @ts-ignore 等注释
      'no-console': 'off', // 允许使用 console
      'no-debugger': 'off', // 允许使用 debugger
      'vue/no-unused-vars': 'off', // 关闭 Vue 未使用变量检查
      'vue/no-static-inline-styles': 'off', // 允许内联样式
      'import/order': 'off', // 关闭 import 顺序检查
      'eol-last': 'off', // 关闭文件末尾空行检查
      semi: 'off', // 关闭分号检查
      '@typescript-eslint/semi': 'off', // 关闭 TypeScript 分号检查
      'no-trailing-spaces': 'off', // 关闭末尾空格检查
      // Vue 组件命名规则：要求组件名为多个单词，但忽略指定的单词组件
      'vue/multi-word-component-names': [
        'warn',
        {
          ignores: ['index', 'App', 'Register', '[id]', '[url]']
        }
      ],
      // Vue 模板中组件名大小写规则：要求使用 PascalCase 格式
      'vue/component-name-in-template-casing': [
        'warn',
        'PascalCase',
        {
          registeredComponentsOnly: false,
          ignores: ['/^icon-/']
        }
      ],

      'unocss/order-attributify': 'off' // 关闭 unocss 相关规则
    }
  }
);
